#ifndef __NEURALNET_H_
#define __NEURALNET_H_
#include "KLib.h"
#include "Neuron.h"
SK
typedef Neuron* pNeuron;
class NeuralNet
{
protected:
	u32 numHidden;
	u32 numNeurons;
	u32 numInput;
	u32 numOutput;
	REAL learnRate;

	pNeuron **layers;
	REAL *inputData;
	REAL *output;

	void build (void);
	inline REAL actFunc (REAL n);
public:
	NeuralNet(u32 numHiddenLayers, u32 numNeuronsPerlayer, u32 numInputs, u32 numOutputs, REAL learnRate);
	~NeuralNet ();

	void run (void);
	void train (REAL *desiredOutput);
	void setInput (REAL *data);

	String getDebuginfo (void);
	REAL *getOutput (void);

};

EK
#endif